下载文件是否需要Content 您所在的位置:网站首页 下载type type 下载文件是否需要Content

下载文件是否需要Content

2024-06-05 18:39| 来源: 网络整理| 查看: 265

不是的。

内容类型应该是已知的任何类型,如果您知道的话。application/octet-stream在RFC2046中被定义为“任意二进制数据”,并且在这里有一个明确的重叠,它适用于其唯一目的是保存到磁盘的实体,并且从这一点上来说,它是任何"webby“之外的东西。或者从另一个角度来看它;使用application/octet-stream唯一可以安全地做的事情就是将它保存到文件中,并希望其他人知道它的用途。

您可以将Content-Disposition与其他内容类型(如image/png甚至text/html )结合使用,以表明您想要保存而不是显示。在使用text/html的情况下,一些浏览器通常会忽略它,但我认为这是很久以前的事情了(我马上就要睡觉了,所以现在不打算开始测试一大堆浏览器;也许以后再测试)。

RFC2616还提到了扩展令牌的可能性,现在大多数浏览器都认可inline,这意味着如果可能的话,你确实想要显示实体(也就是说,如果它是一种浏览器知道如何显示的类型,否则它在这个问题上别无选择)。这当然是默认行为,但这意味着您可以包括头文件的filename部分,如果用户尝试保存,浏览器可能会使用该部分(可能会进行一些调整,以便文件扩展名与相关内容类型的本地系统规范匹配,也可能不会)。

因此:

代码语言:javascript复制Content-Type: application/octet-stream Content-Disposition: attachment; filename="picture.png"

意思是“我不知道这是什么鬼东西。请将它保存为一个文件,最好命名为picture.png”。

代码语言:javascript复制Content-Type: image/png Content-Disposition: attachment; filename="picture.png"

表示“这是一张PNG图片,请保存为文件,最好命名为picture.png”。

代码语言:javascript复制Content-Type: image/png Content-Disposition: inline; filename="picture.png"

意思是“这是一个PNG图片。除非你不知道如何显示PNG图片,否则请显示它。否则,或者如果用户选择保存它,我们建议将其命名为picture.png”。

在那些识别inline的浏览器中,一些人会一直使用它,而另一些人会使用它,如果用户选择了“链接另存为”,但如果他们在查看时选择了“保存”(或者至少IE过去是这样的,几年前可能已经改变了)。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有